/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * AutorizacaoView.java
 *
 * Created on 05/05/2011, 11:05:31
 */

package br.com.comprasPublicas.view.cadastro;

import br.com.comprasPublicas.view.pesquisa.PesquisaCotacaoPendenteView;
import br.com.comprasPublicas.view.pesquisa.PesquisaPessoaCotacaoView;
import br.com.comprasPublicas.dao.DAOGenerico;
import br.com.comprasPublicas.entity.AutorizaCotacao;
import br.com.comprasPublicas.entity.Autorizacao;
import br.com.comprasPublicas.entity.Cotacao;
import br.com.comprasPublicas.entity.InclusaoPrecosCotacao;
import br.com.comprasPublicas.entity.Pedido;
import br.com.comprasPublicas.entity.Pessoa;
import br.com.comprasPublicas.entity.Produto;
import br.com.comprasPublicas.util.ConexaoReport;
import br.com.comprasPublicas.util.FormatadoresUtil;
import br.com.comprasPublicas.util.HibernateUtil;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.sql.Connection;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Restrictions;


/**
 *
 * @author COMPRAS
 */
public class AutorizacaoView extends javax.swing.JFrame {

    /** Creates new form AutorizacaoView */
    public AutorizacaoView() {
        initComponents();
        btnNovo.requestFocus();
        preencher_tblItemAutorizacao();
        proibir_edicao();

        //Método utilizado para centralizar o JFrame na tela
        Dimension tela = Toolkit.getDefaultToolkit().getScreenSize();
        this.setLocation((tela.width - this.getSize().width) / 2, (tela.height - this.getSize().height) / 2);

    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        pnlBotoes = new javax.swing.JPanel();
        btnNovo = new javax.swing.JButton();
        btnSalvar = new javax.swing.JButton();
        btnCancelar = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        txtValorTotal = new javax.swing.JTextField();
        jLabel12 = new javax.swing.JLabel();
        pnlDadosAutorizacao = new javax.swing.JPanel();
        jLabel2 = new javax.swing.JLabel();
        txtAutorizacao = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();
        ftxtEmissao = new javax.swing.JFormattedTextField();
        jLabel4 = new javax.swing.JLabel();
        txtFornecedor = new javax.swing.JTextField();
        jLabel5 = new javax.swing.JLabel();
        txtVendedor = new javax.swing.JTextField();
        txtCondicaoPagamento = new javax.swing.JTextField();
        jLabel6 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        txtPedido = new javax.swing.JTextField();
        jLabel8 = new javax.swing.JLabel();
        txtCotacao = new javax.swing.JTextField();
        txtCodFornecedor = new javax.swing.JTextField();
        jLabel9 = new javax.swing.JLabel();
        txtCondicaoEntrega = new javax.swing.JTextField();
        jLabel13 = new javax.swing.JLabel();
        txtObjeto = new javax.swing.JTextField();
        pnlDadosSolicitante = new javax.swing.JPanel();
        jLabel10 = new javax.swing.JLabel();
        jLabel11 = new javax.swing.JLabel();
        txtCodDepartamento = new javax.swing.JTextField();
        txtDescDepartamento = new javax.swing.JTextField();
        txtCodSecao = new javax.swing.JTextField();
        txtDescSecao = new javax.swing.JTextField();
        jScrollPane2 = new javax.swing.JScrollPane();
        tblItemAutorizacao = new javax.swing.JTable();
        btnVoltar = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setExtendedState(1);
        setName("Form"); // NOI18N
        setResizable(false);
        setUndecorated(true);
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowActivated(java.awt.event.WindowEvent evt) {
                formWindowActivated(evt);
            }
        });

        jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
        jPanel1.setName("jPanel1"); // NOI18N

        pnlBotoes.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        pnlBotoes.setName("pnlBotoes"); // NOI18N

        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(br.com.comprasPublicas.compraspublicas.ComprasPublicasApp.class).getContext().getResourceMap(AutorizacaoView.class);
        btnNovo.setFont(resourceMap.getFont("btnGravar.font")); // NOI18N
        btnNovo.setMnemonic('n');
        btnNovo.setText(resourceMap.getString("btnNovo.text")); // NOI18N
        btnNovo.setName("btnNovo"); // NOI18N
        btnNovo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnNovoActionPerformed(evt);
            }
        });

        btnSalvar.setFont(resourceMap.getFont("btnSalvar.font")); // NOI18N
        btnSalvar.setMnemonic('s');
        btnSalvar.setText(resourceMap.getString("btnSalvar.text")); // NOI18N
        btnSalvar.setEnabled(false);
        btnSalvar.setName("btnSalvar"); // NOI18N
        btnSalvar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnSalvarActionPerformed(evt);
            }
        });

        btnCancelar.setFont(resourceMap.getFont("btnGravar.font")); // NOI18N
        btnCancelar.setMnemonic('c');
        btnCancelar.setText(resourceMap.getString("btnCancelar.text")); // NOI18N
        btnCancelar.setEnabled(false);
        btnCancelar.setName("btnCancelar"); // NOI18N
        btnCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCancelarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout pnlBotoesLayout = new javax.swing.GroupLayout(pnlBotoes);
        pnlBotoes.setLayout(pnlBotoesLayout);
        pnlBotoesLayout.setHorizontalGroup(
            pnlBotoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(pnlBotoesLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(pnlBotoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                    .addComponent(btnNovo, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 160, Short.MAX_VALUE)
                    .addComponent(btnCancelar, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 160, Short.MAX_VALUE)
                    .addComponent(btnSalvar, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 160, Short.MAX_VALUE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        pnlBotoesLayout.setVerticalGroup(
            pnlBotoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(pnlBotoesLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(btnNovo, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(13, 13, 13)
                .addComponent(btnSalvar, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(btnCancelar, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jLabel1.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel1.setText(resourceMap.getString("jLabel1.text")); // NOI18N
        jLabel1.setName("jLabel1"); // NOI18N

        txtValorTotal.setFont(resourceMap.getFont("txtValorTotal.font")); // NOI18N
        txtValorTotal.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        txtValorTotal.setText(resourceMap.getString("txtValorTotal.text")); // NOI18N
        txtValorTotal.setName("txtValorTotal"); // NOI18N

        jLabel12.setFont(resourceMap.getFont("jLabel12.font")); // NOI18N
        jLabel12.setText(resourceMap.getString("jLabel12.text")); // NOI18N
        jLabel12.setName("jLabel12"); // NOI18N

        pnlDadosAutorizacao.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("pnlDadosAutorizacao.border.title"))); // NOI18N
        pnlDadosAutorizacao.setName("pnlDadosAutorizacao"); // NOI18N

        jLabel2.setText(resourceMap.getString("jLabel2.text")); // NOI18N
        jLabel2.setName("jLabel2"); // NOI18N

        txtAutorizacao.setText(resourceMap.getString("txtAutorizacao.text")); // NOI18N
        txtAutorizacao.setName("txtAutorizacao"); // NOI18N

        jLabel3.setText(resourceMap.getString("jLabel3.text")); // NOI18N
        jLabel3.setName("jLabel3"); // NOI18N

        ftxtEmissao.setText(resourceMap.getString("ftxtEmissao.text")); // NOI18N
        ftxtEmissao.setEnabled(false);
        ftxtEmissao.setName("ftxtEmissao"); // NOI18N
        ftxtEmissao.setNextFocusableComponent(txtVendedor);

        jLabel4.setText(resourceMap.getString("jLabel4.text")); // NOI18N
        jLabel4.setName("jLabel4"); // NOI18N

        txtFornecedor.setText(resourceMap.getString("txtFornecedor.text")); // NOI18N
        txtFornecedor.setName("txtFornecedor"); // NOI18N

        jLabel5.setText(resourceMap.getString("jLabel5.text")); // NOI18N
        jLabel5.setName("jLabel5"); // NOI18N

        txtVendedor.setText(resourceMap.getString("txtVendedor.text")); // NOI18N
        txtVendedor.setEnabled(false);
        txtVendedor.setName("txtVendedor"); // NOI18N
        txtVendedor.setNextFocusableComponent(btnSalvar);

        txtCondicaoPagamento.setText(resourceMap.getString("txtCondicaoPagamento.text")); // NOI18N
        txtCondicaoPagamento.setName("txtCondicaoPagamento"); // NOI18N

        jLabel6.setText(resourceMap.getString("jLabel6.text")); // NOI18N
        jLabel6.setName("jLabel6"); // NOI18N

        jLabel7.setText(resourceMap.getString("jLabel7.text")); // NOI18N
        jLabel7.setName("jLabel7"); // NOI18N

        txtPedido.setText(resourceMap.getString("txtPedido.text")); // NOI18N
        txtPedido.setName("txtPedido"); // NOI18N

        jLabel8.setText(resourceMap.getString("jLabel8.text")); // NOI18N
        jLabel8.setName("jLabel8"); // NOI18N

        txtCotacao.setText(resourceMap.getString("txtCotacao.text")); // NOI18N
        txtCotacao.setName("txtCotacao"); // NOI18N

        txtCodFornecedor.setText(resourceMap.getString("txtCodFornecedor.text")); // NOI18N
        txtCodFornecedor.setName("txtCodFornecedor"); // NOI18N
        txtCodFornecedor.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                txtCodFornecedorFocusLost(evt);
            }
        });

        jLabel9.setText(resourceMap.getString("jLabel9.text")); // NOI18N
        jLabel9.setName("jLabel9"); // NOI18N

        txtCondicaoEntrega.setText(resourceMap.getString("txtCondicaoEntrega.text")); // NOI18N
        txtCondicaoEntrega.setName("txtCondicaoEntrega"); // NOI18N

        jLabel13.setText(resourceMap.getString("jLabel13.text")); // NOI18N
        jLabel13.setName("jLabel13"); // NOI18N

        txtObjeto.setText(resourceMap.getString("txtObjeto.text")); // NOI18N
        txtObjeto.setName("txtObjeto"); // NOI18N

        javax.swing.GroupLayout pnlDadosAutorizacaoLayout = new javax.swing.GroupLayout(pnlDadosAutorizacao);
        pnlDadosAutorizacao.setLayout(pnlDadosAutorizacaoLayout);
        pnlDadosAutorizacaoLayout.setHorizontalGroup(
            pnlDadosAutorizacaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(pnlDadosAutorizacaoLayout.createSequentialGroup()
                .addGroup(pnlDadosAutorizacaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(pnlDadosAutorizacaoLayout.createSequentialGroup()
                        .addComponent(jLabel5)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(txtVendedor, javax.swing.GroupLayout.PREFERRED_SIZE, 147, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabel6)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(txtCondicaoPagamento, javax.swing.GroupLayout.PREFERRED_SIZE, 111, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel9)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(txtCondicaoEntrega, javax.swing.GroupLayout.DEFAULT_SIZE, 171, Short.MAX_VALUE))
                    .addGroup(pnlDadosAutorizacaoLayout.createSequentialGroup()
                        .addGroup(pnlDadosAutorizacaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel2)
                            .addComponent(jLabel4))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(pnlDadosAutorizacaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(txtCodFornecedor)
                            .addComponent(txtAutorizacao, javax.swing.GroupLayout.DEFAULT_SIZE, 66, Short.MAX_VALUE))
                        .addGroup(pnlDadosAutorizacaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(pnlDadosAutorizacaoLayout.createSequentialGroup()
                                .addGap(37, 37, 37)
                                .addComponent(jLabel3)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(ftxtEmissao, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(36, 36, 36)
                                .addComponent(jLabel7)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(txtPedido, javax.swing.GroupLayout.PREFERRED_SIZE, 61, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(51, 51, 51)
                                .addComponent(jLabel8)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(txtCotacao, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(pnlDadosAutorizacaoLayout.createSequentialGroup()
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(txtFornecedor, javax.swing.GroupLayout.DEFAULT_SIZE, 507, Short.MAX_VALUE))))
                    .addGroup(pnlDadosAutorizacaoLayout.createSequentialGroup()
                        .addComponent(jLabel13)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(txtObjeto, javax.swing.GroupLayout.DEFAULT_SIZE, 559, Short.MAX_VALUE)))
                .addContainerGap())
        );
        pnlDadosAutorizacaoLayout.setVerticalGroup(
            pnlDadosAutorizacaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(pnlDadosAutorizacaoLayout.createSequentialGroup()
                .addGroup(pnlDadosAutorizacaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(txtAutorizacao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(ftxtEmissao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel7)
                    .addComponent(txtPedido, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel8)
                    .addComponent(txtCotacao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel3))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(pnlDadosAutorizacaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel4)
                    .addComponent(txtFornecedor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(txtCodFornecedor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(pnlDadosAutorizacaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel5)
                    .addComponent(txtVendedor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel6)
                    .addComponent(txtCondicaoPagamento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel9)
                    .addComponent(txtCondicaoEntrega, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(pnlDadosAutorizacaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel13)
                    .addComponent(txtObjeto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
        );

        pnlDadosSolicitante.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("pnlDadosSolicitante.border.title"))); // NOI18N
        pnlDadosSolicitante.setName("pnlDadosSolicitante"); // NOI18N

        jLabel10.setText(resourceMap.getString("jLabel10.text")); // NOI18N
        jLabel10.setName("jLabel10"); // NOI18N

        jLabel11.setText(resourceMap.getString("jLabel11.text")); // NOI18N
        jLabel11.setName("jLabel11"); // NOI18N

        txtCodDepartamento.setName("txtCodDepartamento"); // NOI18N

        txtDescDepartamento.setName("txtDescDepartamento"); // NOI18N

        txtCodSecao.setName("txtCodSecao"); // NOI18N

        txtDescSecao.setName("txtDescSecao"); // NOI18N

        javax.swing.GroupLayout pnlDadosSolicitanteLayout = new javax.swing.GroupLayout(pnlDadosSolicitante);
        pnlDadosSolicitante.setLayout(pnlDadosSolicitanteLayout);
        pnlDadosSolicitanteLayout.setHorizontalGroup(
            pnlDadosSolicitanteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlDadosSolicitanteLayout.createSequentialGroup()
                .addGroup(pnlDadosSolicitanteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, pnlDadosSolicitanteLayout.createSequentialGroup()
                        .addComponent(jLabel11)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(txtCodDepartamento, javax.swing.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(txtDescDepartamento, javax.swing.GroupLayout.DEFAULT_SIZE, 483, Short.MAX_VALUE))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, pnlDadosSolicitanteLayout.createSequentialGroup()
                        .addGap(34, 34, 34)
                        .addComponent(jLabel10)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(txtCodSecao, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(txtDescSecao, javax.swing.GroupLayout.DEFAULT_SIZE, 484, Short.MAX_VALUE)))
                .addContainerGap())
        );
        pnlDadosSolicitanteLayout.setVerticalGroup(
            pnlDadosSolicitanteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(pnlDadosSolicitanteLayout.createSequentialGroup()
                .addGroup(pnlDadosSolicitanteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel11)
                    .addComponent(txtCodDepartamento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(txtDescDepartamento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(pnlDadosSolicitanteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txtCodSecao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel10)
                    .addComponent(txtDescSecao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        jScrollPane2.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("jScrollPane2.border.title"))); // NOI18N
        jScrollPane2.setName("jScrollPane2"); // NOI18N

        tblItemAutorizacao.setAutoCreateRowSorter(true);
        tblItemAutorizacao.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Cod.", "Descrição", "Unid.", "Qtde.", "Valor Unit.", "Valor Total"
            }
        ));
        tblItemAutorizacao.setEnabled(false);
        tblItemAutorizacao.setName("tblItemAutorizacao"); // NOI18N
        tblItemAutorizacao.setSelectionMode(javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
        tblItemAutorizacao.getTableHeader().setResizingAllowed(false);
        tblItemAutorizacao.getTableHeader().setReorderingAllowed(false);
        jScrollPane2.setViewportView(tblItemAutorizacao);

        btnVoltar.setFont(resourceMap.getFont("btnVoltar.font")); // NOI18N
        btnVoltar.setMnemonic('v');
        btnVoltar.setText(resourceMap.getString("btnVoltar.text")); // NOI18N
        btnVoltar.setName("btnVoltar"); // NOI18N
        btnVoltar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnVoltarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 968, Short.MAX_VALUE)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(pnlDadosSolicitante, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(pnlDadosAutorizacao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGap(36, 36, 36)
                                .addComponent(pnlBotoes, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jLabel12)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(txtValorTotal, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE))))
                    .addComponent(jLabel1)
                    .addComponent(btnVoltar, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 91, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(pnlDadosAutorizacao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(pnlDadosSolicitante, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(pnlBotoes, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 33, Short.MAX_VALUE)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel12)
                            .addComponent(txtValorTotal, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(31, 31, 31)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 301, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(btnVoltar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(351, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void btnVoltarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnVoltarActionPerformed
        Object[] options = { "Sim", "Não" };
        int opcao = JOptionPane.showOptionDialog(
            null,
            "Deseja sair da tela de Autorizações?",
            "Saída de Tela",
        JOptionPane.DEFAULT_OPTION,
        JOptionPane.WARNING_MESSAGE,
            null,
            options,
            options[0]);

        if (opcao == 0) {
            this.dispose();
            limpar_objetos();
        }
    }//GEN-LAST:event_btnVoltarActionPerformed

    private void btnNovoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNovoActionPerformed
        if (pesquisaCotacaoPendenteView == null) {
            PesquisaCotacaoPendenteView frame = new PesquisaCotacaoPendenteView(this, rootPaneCheckingEnabled);
            frame.setVisible(true);
        }

    }//GEN-LAST:event_btnNovoActionPerformed

    private void formWindowActivated(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowActivated
        if (cot != null){
            cotacaoId = cot;
            txtCotacao.setText(cotacaoId);
            if (pess ==null){
                if (pesquisaPessoaCotacaoView == null) {
                    PesquisaPessoaCotacaoView frame = new PesquisaPessoaCotacaoView(this, rootPaneCheckingEnabled);
                    frame.setVisible(true);
                }
            }
            else {
                pessoaId = pess;
                txtCodFornecedor.requestFocus();
                txtCodFornecedor.setText(pessoaId);
                ftxtEmissao.requestFocus();
                ftxtEmissao.setEnabled(true);
                txtVendedor.setEnabled(true);
                btnNovo.setEnabled(false);
                btnCancelar.setEnabled(true);
                btnSalvar.setEnabled(true);
                cot = null;
                pess = null;
            }
        }
    }//GEN-LAST:event_formWindowActivated

    private void txtCodFornecedorFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtCodFornecedorFocusLost
        //Setar o Objeto Pessoa selecionado
        pessoa = new Pessoa();
        List<Pessoa> lista_pessoa = new ArrayList ();
        lista_pessoa = lista_pessoa();
        int tamanho_pessoa = lista_pessoa.size();
        for (int i=0; i<tamanho_pessoa; i++)
        {
            pessoa = lista_pessoa.get(i);
        }
        txtFornecedor.setText(pessoa.getNome_razao_soc());
        preenche_objetos();
    }//GEN-LAST:event_txtCodFornecedorFocusLost

    private void btnSalvarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSalvarActionPerformed
        Double valorTotalForn = pessoa.getTotal_gasto() + Double.parseDouble(txtValorTotal.getText());
        if (valorTotalForn > 8000) {
            Object[] options = {"Sim", "Não"};
            int opcao = JOptionPane.showOptionDialog(
                    null,
                    "O limite de compra anual de R$8.000,00 para o fornecedor foi excedido! " +
                    "- Salvar mesmo assim?",
                    "Atenção: LIMITE EXCEDIDO",
                    JOptionPane.DEFAULT_OPTION,
                    JOptionPane.WARNING_MESSAGE,
                    null,
                    options,
                    options[0]);

            if (opcao == 0) {
                grava_autorizacao();
                JOptionPane.showMessageDialog(null, "Autorização de Compra Gravada com Sucesso!");
                imprimi_autorizacao();
                atualiza_valor_pessoa();
                btnCancelar.setEnabled(false);
                btnNovo.setEnabled(true);
                btnSalvar.setEnabled(false);
                limpar_objetos();
            }
        }
        else{
            grava_autorizacao();
            JOptionPane.showMessageDialog(null, "Autorização de Compra Gravada com Sucesso!");
            imprimi_autorizacao();
            atualiza_valor_pessoa();
            btnCancelar.setEnabled(false);
            btnNovo.setEnabled(true);
            btnSalvar.setEnabled(false);
            limpar_objetos();
        }
    }//GEN-LAST:event_btnSalvarActionPerformed

    private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelarActionPerformed
        btnCancelar.setEnabled(false);
        btnNovo.setEnabled(true);
        btnSalvar.setEnabled(false);
        
        limpar_objetos();
    }//GEN-LAST:event_btnCancelarActionPerformed

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new AutorizacaoView().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnCancelar;
    private javax.swing.JButton btnNovo;
    private javax.swing.JButton btnSalvar;
    private javax.swing.JButton btnVoltar;
    private javax.swing.JFormattedTextField ftxtEmissao;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JPanel pnlBotoes;
    private javax.swing.JPanel pnlDadosAutorizacao;
    private javax.swing.JPanel pnlDadosSolicitante;
    private javax.swing.JTable tblItemAutorizacao;
    private javax.swing.JTextField txtAutorizacao;
    private javax.swing.JTextField txtCodDepartamento;
    private javax.swing.JTextField txtCodFornecedor;
    private javax.swing.JTextField txtCodSecao;
    private javax.swing.JTextField txtCondicaoEntrega;
    private javax.swing.JTextField txtCondicaoPagamento;
    private javax.swing.JTextField txtCotacao;
    private javax.swing.JTextField txtDescDepartamento;
    private javax.swing.JTextField txtDescSecao;
    private javax.swing.JTextField txtFornecedor;
    private javax.swing.JTextField txtObjeto;
    private javax.swing.JTextField txtPedido;
    private javax.swing.JTextField txtValorTotal;
    private javax.swing.JTextField txtVendedor;
    // End of variables declaration//GEN-END:variables

    public void preencher_tblItemAutorizacao()
    {
        tblItemAutorizacao.getColumnModel().getColumn(0).setPreferredWidth(1);
        tblItemAutorizacao.getColumnModel().getColumn(1).setPreferredWidth(500);
        tblItemAutorizacao.getColumnModel().getColumn(2).setPreferredWidth(40);
        tblItemAutorizacao.getColumnModel().getColumn(3).setPreferredWidth(60);
        tblItemAutorizacao.getColumnModel().getColumn(4).setPreferredWidth(50);
        tblItemAutorizacao.getColumnModel().getColumn(5).setPreferredWidth(50);
    }
    
    private List pega_dadosCotacao(){
        Session sessao = HibernateUtil.getSessao();
        Transaction transacao = sessao.beginTransaction();

        Query query = sessao.createQuery("from Cotacao where id_cotacao = :id");
        query.setString("id", cotacaoId);

        List lista = query.list();

        transacao.commit();
        sessao.close();

        return lista;
    }

    private Pessoa pega_fornecedor(){
        Session sessao = HibernateUtil.getSessao();
        Transaction transacao = sessao.beginTransaction();

        Query query = sessao.createQuery("from Pessoa where id_pessoa = :id");
        query.setString("id", pessoaId);

        Pessoa lista = (Pessoa) query.list();

        transacao.commit();
        sessao.close();

        return lista;
    }

    


    private void preenche_itensCotacao(){
        Session sessao = HibernateUtil.getSessao();
        Transaction transacao = sessao.beginTransaction();
        int idPessoa = Integer.parseInt(pessoaId);
        int idCotacao = Integer.parseInt(cotacaoId);

        Criteria c = sessao.createCriteria(InclusaoPrecosCotacao.class).createAlias("cotacao", "c").createAlias("pessoa", "p");
        c.add(Restrictions.like("c.id_cotacao", idCotacao));
        c.add(Restrictions.like("vencedor", "s"));
        c.add(Restrictions.like("p.id_pessoa", idPessoa));

        List lista = c.list();
        
        DefaultTableModel modelo_tbl = (DefaultTableModel) tblItemAutorizacao.getModel();
        modelo_tbl.setNumRows(0);

        inclusaoPrecosCotacao = new InclusaoPrecosCotacao();

        //Preechendo a tabela de itens Pedido
        int tamanho_lista = lista.size();
        for (int i=0; i<tamanho_lista; i++)
        {
            inclusaoPrecosCotacao = (InclusaoPrecosCotacao) lista.get(i);
            modelo_tbl.addRow(new Object[]{ inclusaoPrecosCotacao.getItem_pedido().getProduto().getId_produto(),
                                            inclusaoPrecosCotacao.getItem_pedido().getProduto().getNome(),
                                            inclusaoPrecosCotacao.getItem_pedido().getUnidade(),
                                            inclusaoPrecosCotacao.getItem_pedido().getQuantidade(),
                                            inclusaoPrecosCotacao.getValor_unitario(),
                                            inclusaoPrecosCotacao.getValor_total(),
                                            });
            listaInclusaoPrecos.add(inclusaoPrecosCotacao);
        }

        transacao.commit();
        sessao.close();
    }


    private void preenche_objetos() {
        //Setando e Instanciando a cotacao selecionada
        List listaCotacao = pega_dadosCotacao();
        int tamanho_lista = listaCotacao.size();
        for (int i=0; i<tamanho_lista; i++)
        {
            cotacao = (Cotacao) listaCotacao.get(i);
        }

        //preencher a data de hoje no campo data da Autorização
        Date hoje = new Date(System.currentTimeMillis());
        String formato = "dd/MM/yyyy";
        SimpleDateFormat formatter = new SimpleDateFormat(formato);
        String dataHoje = formatter.format(hoje);
        ftxtEmissao.setText(dataHoje);

        //preencher demais objetos do formulário conforme cotação selecionada
        txtPedido.setText(Integer.toString(cotacao.getPedido().getId_pedido()));
        txtCondicaoPagamento.setText(cotacao.getCondicao_pagamento());
        txtCondicaoEntrega.setText(cotacao.getCondicao_entrega());
        txtObjeto.setText(cotacao.getPedido().getObjeto_compra());
        txtCodDepartamento.setText(Integer.toString(cotacao.getPedido().getSecao().getDepartamento().getId_departamento()));
        txtDescDepartamento.setText(cotacao.getPedido().getSecao().getDepartamento().getDepartamento());
        txtCodSecao.setText(Integer.toString(cotacao.getPedido().getSecao().getId_secao()));
        txtDescSecao.setText(cotacao.getPedido().getSecao().getSecao());
        


        preenche_itensCotacao();

        double soma = 0;
        for (int i=0; i<tblItemAutorizacao.getRowCount(); i++) {
            Double valor = (Double)tblItemAutorizacao.getValueAt(i, 5);
            soma+=valor.doubleValue();
        }
        txtValorTotal.setText(String.valueOf(soma));
        valorTotal = soma;
        

        btnNovo.setEnabled(false);
        btnSalvar.setEnabled(true);
        btnCancelar.setEnabled(true);
    }

    private void grava_autorizacao() {
        Date dataPedido = Calendar.getInstance().getTime();

        autorizaCotacao = new AutorizaCotacao();

        dataPedido = FormatadoresUtil.data2Banco(ftxtEmissao.getText());
        autorizaCotacao.setData_emissao(dataPedido);
        autorizaCotacao.setCondicao_pagamento(txtCondicaoPagamento.getText());
        autorizaCotacao.setCondicao_entrega(txtCondicaoEntrega.getText());
        autorizaCotacao.setVendedor(txtVendedor.getText());
        autorizaCotacao.setCotacao(cotacao);
        autorizaCotacao.setObservacao(txtObjeto.getText());
        autorizaCotacao.setValor_totalAutorizacao(valorTotal);
        autorizaCotacao.setPessoa(pessoa);

        //Setar o Objeto Pedido selecionado
        pedido = new Pedido();
        List<Pedido> lista = new ArrayList ();
        lista = lista_pedido();
        int tamanho_lista = lista.size();
        for (int i=0; i<tamanho_lista; i++)
        {
            pedido = lista.get(i);
        }
        autorizaCotacao.setPedido(pedido);

        obj_autorizacao = new DAOGenerico(autorizaCotacao);
        if (obj_autorizacao.inserir()){
            atualiza_itensCotacao();
        }
        else JOptionPane.showMessageDialog(null, "Erro ao gravar Autorização");
    }

    private List lista_pedido(){
        Session sessao = HibernateUtil.getSessao();
        Transaction transacao = sessao.beginTransaction();

        Query query = sessao.createQuery("from Pedido where id_pedido = :id");
        query.setString("id", txtPedido.getText());

        List list = query.list();

        transacao.commit();
        sessao.close();

        return list;

    }

    private List lista_pessoa(){
        Session sessao = HibernateUtil.getSessao();
        Transaction transacao = sessao.beginTransaction();

        Query query = sessao.createQuery("from Pessoa where id_pessoa = :id");
        query.setString("id", txtCodFornecedor.getText());

        List list = query.list();

        transacao.commit();
        sessao.close();

        return list;

    }

    private void atualiza_itensCotacao(){
        int tamanho_lista = listaInclusaoPrecos.size();
        for (int i=0;i<tamanho_lista;i++){
            inclusaoPrecosCotacao = listaInclusaoPrecos.get(i);
            inclusaoPrecosCotacao.setAutoriza_cotacao(autorizaCotacao);

            obj_item = new DAOGenerico(inclusaoPrecosCotacao);
            if (obj_item.atualizar()){

            }
            else JOptionPane.showMessageDialog(null, "Erro ao atualizar item");
            obj_item = null;
            atualizar_valorMedioProduto();
        }

    }

    //atualizando o valor medio do produto
    private void atualizar_valorMedioProduto(){
        Produto itemAtualizar = inclusaoPrecosCotacao.getItem_pedido().getProduto();
        Double valorAntigo = itemAtualizar.getValor_medio();
        Double valorAtual = inclusaoPrecosCotacao.getValor_unitario();
        Double valorMedio;
        if (valorAntigo == 0.0){
            valorMedio = valorAtual;
        }
        else{
            valorMedio = (valorAtual + valorAntigo)/2;
        }
        itemAtualizar.setValor_medio(valorMedio);
        DAOGenerico obj_produto = new DAOGenerico(itemAtualizar);
        try{
            obj_produto.atualizar();
        }catch(Exception e){
        }
        obj_produto = null;
    }

    private void proibir_edicao() {
        txtAutorizacao.setEditable(false);
        txtCodDepartamento.setEditable(false);
        txtCodFornecedor.setEditable(false);
        txtCodSecao.setEditable(false);
        txtCondicaoEntrega.setEditable(false);
        txtCondicaoPagamento.setEditable(false);
        txtCotacao.setEditable(false);
        txtDescDepartamento.setEditable(false);
        txtDescSecao.setEditable(false);
        txtFornecedor.setEditable(false);
        txtObjeto.setEditable(false);
        txtPedido.setEditable(false);
        txtValorTotal.setEditable(false);
    }
    private void imprimi_autorizacao(){
        //sequência de métodos para imprimir a cotação
        Connection con = null;
        try {
            //cria a conexao com o banco de dados
            con = ConexaoReport.getConnection();
            //parametro para busca em relatorio Cotacao
            HashMap<String, Integer> parameterMap = new HashMap<String, Integer>();
            //buscando os atributos que serão repassados ao HashMap
            Integer autorizacaoBusca = autorizaCotacao.getId_autorizacao();
            Integer cotacaoBusca = cotacao.getId_cotacao();
            Integer pessoaBusca = autorizaCotacao.getPessoa().getId_pessoa();
            //nome dos parametros e os valores que são passados ao HashMap
            parameterMap.put("id_autorizacao", autorizacaoBusca);
            parameterMap.put("id_cotacao", cotacaoBusca);
            parameterMap.put("id_pessoa", pessoaBusca);


            //PEGA O CAMINHO FISICO DO ARQUIVO .jasper
            String arquivo = "./report/Autorizacao.jasper";

            //chama fillReport(caminho fisico, parametros, conexão)
            JasperPrint jp = JasperFillManager.fillReport(arquivo, parameterMap, con);

            //exibe o relatorio com o viewReport
            JasperViewer.viewReport(jp, false);

        }
        catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Erro em impressão de Relatorio: " +ex);
        }
        finally {
            try {
                if (!con.isClosed()) {
                    con.close();
                }
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, "Erro ao fechar conexão: " + e);
            }
        }

    }

    private void limpar_objetos() {
        txtAutorizacao.setText("");
        txtCodDepartamento.setText("");
        txtCodFornecedor.setText("");
        txtCodSecao.setText("");
        txtCondicaoEntrega.setText("");
        txtCondicaoPagamento.setText("");
        txtCotacao.setText("");
        txtDescDepartamento.setText("");
        txtDescSecao.setText("");
        txtFornecedor.setText("");
        txtObjeto.setText("");
        txtPedido.setText("");
        txtValorTotal.setText("");
        txtVendedor.setText("");
        ftxtEmissao.setEnabled(false);
        ftxtEmissao.setText("");
        txtVendedor.setEnabled(false);
        DefaultTableModel tableModel =(DefaultTableModel) tblItemAutorizacao.getModel();
        tableModel.setNumRows(0);
    }

    private Cotacao cotacao;
    private Pedido pedido;
    private Pessoa pessoa;
    public static String cot=null;
    public static String pess=null;
    String cotacaoId=null;
    String pessoaId=null;
    Double valorTotal=null;
    private PesquisaCotacaoPendenteView pesquisaCotacaoPendenteView;
    private PesquisaPessoaCotacaoView pesquisaPessoaCotacaoView;
    private InclusaoPrecosCotacao inclusaoPrecosCotacao;
    private List<InclusaoPrecosCotacao> listaInclusaoPrecos = new ArrayList<InclusaoPrecosCotacao>();
    private AutorizaCotacao autorizaCotacao;
    private DAOGenerico obj_autorizacao;
    private DAOGenerico obj_item;

    private void atualiza_valor_pessoa() {
        Double totalGasto = pessoa.getTotal_gasto() + autorizaCotacao.getValor_totalAutorizacao();
        pessoa.setTotal_gasto(totalGasto);
        DAOGenerico obj_pessoa = new DAOGenerico(pessoa);
        obj_pessoa.atualizar();
    }
}
